package com.jzo2o.orders.manager.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jzo2o.common.model.msg.TradeStatusMsg;
import com.jzo2o.orders.base.model.domain.Orders;
import com.jzo2o.orders.manager.model.dto.request.OrdersPayReqDTO;
import com.jzo2o.orders.manager.model.dto.response.OrdersPayResDTO;

/**
 * <p>
 * 下单服务类
 * </p>
 *
 * @author itcast
 * @since 2023-07-10
 */
public interface IOrdersCreateService extends IService<Orders> {
        /**
         * 订单支付
         * @param id              订单id
         * @param ordersPayReqDTO 订单支付请求体
         * @return 订单支付响应体
         */
        OrdersPayResDTO pay(Long id, OrdersPayReqDTO ordersPayReqDTO);

        /**
         * 查询订单支付结果
         */
        OrdersPayResDTO getPayResultFromTradServer(Long id);
        /**
         * 支付成功， 更新数据库的订单表及其他信息
         * @param tradeStatusMsg 交易状态消息
         */
        void paySuccess(TradeStatusMsg tradeStatusMsg);
}
